home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MATH / NRPAS13 / CHDER.DEM < prev    next >
Text File  |  1991-04-29  |  1KB  |  52 lines

  1. PROGRAM d5r7(input,output);
  2. (* driver for routine CHDER *)
  3. LABEL 10,99;
  4. CONST
  5.    nval=40;
  6.    pio2=1.5707963;
  7. TYPE
  8.    glcarray=ARRAY [1..nval] OF real;
  9. VAR
  10.    a,b,x : real;
  11.    i,mval : integer;
  12.    c,cder : glcarray;
  13.  
  14. FUNCTION func(x: real): real;
  15. BEGIN
  16.    func := sqr(x)*(sqr(x)-2.0)*sin(x)
  17. END;
  18.  
  19. FUNCTION fder(x: real): real;
  20. BEGIN
  21.    fder := 4.0*x*(sqr(x)-1.0)*sin(x)+sqr(x)*(sqr(x)-2.0)*cos(x)
  22. END;
  23.  
  24. (*$I MODFILE.PAS *)
  25. (*$I CHEBEV.PAS *)
  26.  
  27. (*$I CHEBFT.PAS *)
  28.  
  29. (*$I CHDER.PAS *)
  30.  
  31. BEGIN
  32.    a := -pio2;
  33.    b := pio2;
  34.    chebft(a,b,c,nval);
  35. (* test derivative *)
  36. 10:   writeln;
  37.    writeln('How many terms in Chebyshev evaluation?');
  38.    write('Enter n between 6 and ',nval:2,
  39.          '. (n := 0 to end).  ');
  40.    readln (mval);
  41.    IF ((mval <= 0) OR (mval > nval)) THEN GOTO 99;
  42.    chder(a,b,c,cder,mval);
  43.    writeln;
  44.    writeln('x':9,'actual':14,'Cheby. deriv.':16);
  45.    FOR i := -8 to 8 DO BEGIN
  46.       x := i*pio2/10.0;
  47.       writeln(x:12:6,fder(x):12:6,chebev(a,b,cder,mval,x):12:6)
  48.    END;
  49.    GOTO 10;
  50. 99:
  51. END.
  52.